#include <stdio.h>

//输入两个升序排列的序列，将两个序列合并为一个有序序列并输出。
//输出为一行，输出长度为n+m的升序序列，即长度为n的升序序列和长度为m的升序序列中的元素重新进行升序序列排列合并。

int main(){
    int m = 0;
    int n = 0;
    //输入并初始化数组
    scanf("%d %d", &m, &n);
    int arr1[m];
    int arr2[n];
    int arr3[m+n];
    int i = 0;
    for ( i = 0; i < m; i++)
    {
        scanf("%d", arr1+i);
    }
    for ( i = 0; i < n; i++)
    {
        scanf("%d", arr2+i);
    }
    
    //合并数组
    int j = 0;
    int k = 0;
    int r = 0;
    while(j < m && k < n)
    {
        if(arr1[j] < arr2[k])
        {
            arr3[r++] = arr1[j];
            j++;
        }
        else
        {
            arr3[r++] = arr2[k];
            k++;
        }
    }
    if(j < m)
    {
        for(; j < m; j++)
        {
            arr3[r++] = arr1[j];
        }
    }
    else
    {
        for(; k < n; k++)
        {
            arr3[r++] = arr2[k];
        }
    }
    //输出
    for(i = 0; i < m+n; i++)
    {
        printf("%d ", arr3[i]);
    }
    
    return 0;
}